/*
 * Filename:    ICaseCommonService.java
 * Copyright:   2014 中国平安保险（集团）股份有限公司 版权所有
 * Company:     平安科技养老险及健康险系统开发部
 * Create at:   2014-11-21
 */
package com.paic.mhis.hcpms.audit.biz.service;

import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.paic.mhis.core.auth.biz.service.UserDetails;
import com.paic.mhis.hcpms.audit.dto.AuditInsuranceInfoDTO;
import com.paic.mhis.hcpms.audit.dto.AuditMedicalInfoDTO;
import com.paic.mhis.hcpms.audit.dto.AuditOpinionDTO;
import com.paic.mhis.hcpms.audit.dto.AuditPointCutTempDTO;
import com.paic.mhis.hcpms.audit.dto.AuditTargetDTO;
import com.paic.mhis.hcpms.audit.dto.AuditiStaffInfoDTO;
import com.paic.mhis.hcpms.audit.dto.CaseCommonRequestDTO;
import com.paic.mhis.hcpms.audit.dto.CommonInsureanceDTO;
import com.paic.mhis.hcpms.audit.dto.CommonMedicalDTO;
import com.paic.mhis.hcpms.audit.dto.CommonStaffDTO;

public interface ICaseCommonService {

	public CommonMedicalDTO queryCommonMedicalBean(AuditMedicalInfoDTO bean);

	public CommonStaffDTO queryCommonStaffBean(AuditiStaffInfoDTO bean);

	public CommonInsureanceDTO queryCommonInsureanceBean(
			AuditInsuranceInfoDTO bean);

	public void saveAuditTargetInfo(CaseCommonRequestDTO vo, UserDetails user)
			throws Exception;

	public void saveMedicalCommonInfo(CaseCommonRequestDTO vo, UserDetails user)
			throws Exception;

	public void deleteAuditTargetInfo(AuditTargetDTO info);

	/**
	 * 查询扣分情况
	 * 
	 * @param dto
	 * @return
	 */
	List<AuditPointCutTempDTO> loadAuditPointCutTemp(AuditPointCutTempDTO dto);

	public AuditOpinionDTO queryDispatchInfo(String taskCode, String taskType,
			String opinionType);

	/**
	 * 将任务号和用户名称,扣分json数据保存到临时表中
	 * 
	 * @param taskCode
	 * @param pointJson
	 * @param username
	 */
	public void saveAuditCasePoint(String taskCode, JSONObject pointJson,
			String username);

	/**
	 * 根据任务号和用户名称从临时表中查询出扣分暂存的数据
	 * 
	 * @param taskCode
	 * @param username
	 * @return
	 */
	public JSONObject queryBatchOpertionAuditCasePoint(String taskCode,
			String username);

	public void deleteAuditCasePoint(String taskCode, String username);

	/**
	 * 批量操作参保人和医护人员的公共部分
	 * 
	 * @param taskCode
	 * @param taskType
	 *            其中taskType :ConstantsUtils.taskType_01 事件
	 *            ConstantsUtils.taskType_02 案件
	 */
	public void batchOpertionMedicalCommon(String taskCode, String taskType,
			String username);

}
